#!/bin/bash
# 设置权限
chmod -R 777 /opt/jdk1.8.0_202/bin
# 设置应用程序名称
APP_NAME=mydockercompose

# 设置应用程序JAR包的路径
APP_PATH=/opt/springShellDemo/mydockercompose.jar

# 设置应用程序日志输出文件的路径
LOG_PATH=/opt/springShellDemo/${APP_NAME}_$(date +%Y-%m-%d).log


# 设置Java运行时环境路径
JAVA_HOME=/opt/jdk1.8.0_202

# 设置JVM参数
JAVA_OPTS="-Xmx512m -Xms512m -XX:MaxMetaspaceSize=256m"

# 设置应用程序的端口和环境变量
APP_PORT=8082
APP_ENV=test

# 启动应用程序
function start() {
	# 检查应用程序是否已经启动
    PID=$(ps -ef | grep mydockercompose.jar | grep -v grep | awk '{print $2}')
    if [[ -n "$PID" ]]; then
        echo "$APP_NAME is already running with PID $PID."
        exit 1
    fi
    echo "Starting $APP_NAME..."

    # 使用nohup命令启动应用程序，并将输出重定向到日志文件
    nohup $JAVA_HOME/bin/java $JAVA_OPTS -Dserver.port=$APP_PORT -Dspring.location=file:/opt/springShellDemo/config/  -Dspring.profiles.active=$APP_ENV -jar $APP_PATH > $LOG_PATH 2>&1 &

    echo "$APP_NAME started."
}


# 停止应用程序
function stop() {
    echo "Stopping $APP_NAME..."

    # 查找应用程序的进程ID，并将其杀死
    PID=`ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}'`
    if [[ -n "$PID" ]]; then
        kill -9 $PID
    fi

    echo "$APP_NAME stopped."
}

# 根据命令行参数执行相应的操作
case $1 in
    "start")
        start
    ;;
    "stop")
        stop
    ;;
    *)
        echo "Usage: $0 {start|stop}"
    ;;
esac

exit 0
